
daekss
(usa Ubuntu)
Enviado em 01/06/2012 - 14:40h
Pessoal, estou tendo um probleminha para usar o sed na função system();
Preciso localizar e substituir uma palavra dentro de um arquivo usando uma chamada de sistema, nada melhor que o sed.
Quando uso desta forma, obtenho sucesso:
system("sed -i 's/palavraantiga/palavranova/g' teste.txt");
eu consigo substituir a palavraantiga pela palavranova no arquivo teste.txt
O problema, é que ele só funciona se eu digitar essas palavras e o nome do arquivo diretamente nessa função system com o sed.
Se eu tento colocar através de uma variável, por exemplo:
int main()
{
char pantiga[40];
char pnova[40];
char nomearquivo[40];
gets(pantiga);
gets(pnova);
gets(nomearquivo);
system("sed -i 's/pantiga/pnova/g' nomearquivo");
}
ele nao funciona pessoal ! ele nao consegue ler o conteúdo dessas variáveis. ja tentei de várias formas, inclusive com ponteiros.
Alguem me sugere um jeito de fazer isso funcionar ?